A graphical user interface (GUI) is a human-computer interface that allows a user to interact with programs through a set of graphical objects such as controls, icons, menus, and windows. The GUIs have all but replaced the earlier command line interfaces which used only text and were accessed solely by a keyboard. Users interact with GUI objects by using a mouse, trackball, touchpad, or keyboard. For instance, a mouse can be used to move a pointer on the screen on top of a GUI object such as an icon to select the object. Then the object can be moved by dragging or can be selected by clicking on its icon.
Many tools exist that facilitate writing GUIs for application developers. These tools provide libraries that define each GUI element, e.g., as a class, and provide application programming interfaces (APIs) from which an application can create object instances. Also source code for predefined methods are available that allow application developers to use or modify in order to develop application programs to display and manipulate GUI objects.
In order to control the specifics of the sizing and spacing of graphical elements, to determine where text is to be rendered relevant to the image, and to align graphical elements against each other, there is a need to generate a correspondence between the image artwork and the displayed layout. Typically a correspondence is made between the image artwork and what the code is doing by actually hard coding the desired layout in the software itself. There is therefore an explicit awareness of the underlying design and topology of the image artwork in the code. Such a correspondence would require custom written software programs to display GUI objects for the specific topology and alignment requirements of each application.
Tools are also available that allow manual entering of metadata that describe how graphical components of GUI elements can be aligned against each other and how the associated text can be placed on GUI elements at render time. These tools are used to enter the descriptions through a set of alphanumeric fields once the image artwork is designed. In order to specify the alignment information, measuring tools provided by graphics editing tools are used to determine the exact distances of text relative to the image as well as the distances of different graphical components relative to each other.